package azalea.mqtt.message.utils;

public class MsgUtils {
	/*
	 * public static byte[] commMsg (int header,int identity,byte[] payload,int
	 * payloadLen) { byte len=(byte)(2+payloadLen); byte[] result=new
	 * byte[2+2+payloadLen]; result[0]=(byte)((header<<4)&0xf0); result[1]=len;
	 * result[2]=(byte)((identity>>8)&0x0f); result[3]=(byte)(identity&0x0f);
	 * ByteUtils.copy(payload, result, 0, 4, len); return result; }
	 */
	public static byte[] commMsg (int msgType,int head,byte msb,byte lsb,byte[] payload,int payloadLen) {
		byte len=(byte)(2+payloadLen);
		byte[] result=new byte[2+2+payloadLen];
		result[0]=(byte)((msgType<<4)&0xf0|(head&0x0f));
		result[1]=len;
		result[2]=(byte)msb;
		result[3]=(byte)lsb;
		ByteUtils.copy(payload, result, 0, 4, payloadLen);
		return result;
	}
	/**
	 * 没有 唯一标识符
	 * @param msgType
	 * @param head
	 * @param payload
	 * @param payloadLen
	 * @return
	 */
	public static byte[] commMsg (int msgType,int head,byte[] payload,int payloadLen) {
		byte len=(byte)(payloadLen);
		byte[] result=new byte[2+payloadLen];
		result[0]=(byte)((msgType<<4)&0xf0|(head&0x0f));
		result[1]=len;
		ByteUtils.copy(payload, result, 0, 2, payloadLen);
		return result;
	}
	public static byte[] commMsg (int msgType,byte msb,byte lsb,byte[] payload,int payloadLen) {
		return commMsg(msgType,0,msb,lsb,payload,payloadLen);
	}
	/**
	 * 没有 唯一标识符
	 * @param msgType
	 * @param payload
	 * @param payloadLen
	 * @return
	 */
	public static byte[] commMsg (int msgType,byte[] payload,int payloadLen) {
		return commMsg(msgType,0,payload,payloadLen);
	}
}
